-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add storage_costs to GenericStorage #962
Conversation
storage_costs += self.storage_content[n, 0] * n.storage_costs[0] | ||
for t in m.TIMESTEPS: | ||
storage_costs += self.storage_content[n, t+1] * n.storage_costs[t+1] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The earlier described behavior probably results somehow from having the cumulated sum of costs over all timsteps. Maybe a note should be added that it might be complicated to directly steer the behavior?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The way it is designed is intended: The cost is applied for having energy in the storage. I made the docstring more specific. (If there was cost for storing, you would give that to the inflow, instead.)
Could you please briefly explain, what you want to show in your example? Especially with your choice of setting the |
I decided to go to a more practical example. The original one arose from the script I wrote to check the behaviour of the new functionality. |
+0.1 GenericStorageBlock_storage_content(storage_no_invest_1) | ||
+0.1 GenericStorageBlock_storage_content(storage_no_invest_2) | ||
+0.1 GenericStorageBlock_storage_content(storage_no_invest_3) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apparently there is no period
index for the storage block. Maybe this should be fixed for the sake of consistency? Not sure if this needs to be addressed in a separate issue though?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As the storage content is given in absolute values, only the limit (which might change from period to period) needs to have the index. I will leave it as it is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the updated example, I think it adds to a better understanding.
Implement parameter
storage_costs
forGenericStorage
:storage_costs
might exist, e.g. if space can be rented depending on the stored energy. So, this might be seen as an alternative to investment optimisation. A second use case is to incentivise using the storage in the last time step if the storage is not periodic. This can be done by givingstorage_costs=n_time_steps * [0] + [-energy_price]
, so that stored energy in the last time step is valued with the energy price.